
#ifndef ICONVEXCONVEXALGORITHM_H
#define ICONVEXCONVEXALGORITHM_H

#include "IAlgorithm.h"

namespace BWE
{
	class IConvexConvexAlgorithm : public IAlgorithm
	{
	public:
		IConvexConvexAlgorithm();
		~IConvexConvexAlgorithm();

		virtual void caculate() override;
		virtual void timeImpact() override;

		BVector segmentsClosestPoints(const BVector& offset, const BVector& directA, BReal heightA, const BVector& directB, BReal heightB, BVector& offsetA, BVector& offsetB);
		BReal capsuleCapsuleDistance(BVector& normalOnB, BVector& pointOnB, BReal heightA, BReal radiusA, BReal heightB, BReal radiusB);
	
	private:
		BReal				_marginA;
		BReal				_marginB;
	};
}

#endif
